/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Persistencia;
import java.sql.*;
import com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource;

/**
 *
 * @author beatriz
 */
public class Agente {
    protected String usuario = "root";
    protected String pswd = "root";
    protected String path = "jdbc:mysql://localhost/inteligenciap1";
    protected static Agente instancia = null;
//    protected Connection[] conexiones;
    protected Connection conexion;


    /*Se inicializan todas las conexiones que se podrán utilizar */
    protected Agente (){

//       conexiones = new Connection[100];
       try{
            Class.forName("com.mysql.jdbc.Driver");
            conexion = DriverManager.getConnection(path,usuario,pswd);
            conexion.close();
//            for(int i = 0; i<100; i++){
//                conexiones[i] = DriverManager.getConnection("jdbc:mysql://localhost/HolaMundo", usuario, pswd);
//                conexiones[i].close();
//            }
/*            for(Connection c : conexiones){
                 c = DriverManager.getConnection("jdbc:mysql://localhost/HolaMundo", usuario, pswd);
             }
            for (Connection c : conexiones) {
                c.close();
            }
 * 
 */


        }catch (ClassNotFoundException e){
            System.out.println(e.toString());
        }catch (Exception e){
            System.out.println(e.toString());
        }

    }
    
    /*Metodo getAgente : devuelve el agente, si no esta creado se encarga de 
     * crearlo
     */
    public static Agente getAgente(){
        if (instancia != null)
            return instancia;
        else
            return instancia = new Agente();
    }

    /**Devuelve una Conexion que no se esté utilizando, busca cualquier conexion cerrada y se reserva
     * , abre y devuelve
     * @return conexion
     * */
    public Connection getConnection() throws SQLException{
        Connection encontrada = null;
        int i = 0;

        if (instancia == null){
            instancia = new Agente();
        }

//        while(encontrada == null && i<instancia.conexiones.length){
//            if (instancia.conexiones[i].isClosed())
//                encontrada = instancia.conexiones[i];
//            i++;
//        }
        if(instancia.conexion.isClosed()){
            encontrada= instancia.conexion;
        }
        encontrada = DriverManager.getConnection(instancia.path, instancia.usuario, instancia.pswd);
        return encontrada;

    }




}
